home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / biblio / bibtex / contrib / phy-bstyles / nflet.bst < prev    next >
Text File  |  1992-06-14  |  19KB  |  1,034 lines

  1. %% #define NFLET 1        % Thu Jun 14 13:24:01 1990
  2. %% #include "TEX$ROOT:[BIBTEX]PHYSICS.BTX"
  3.     % Please notify Charles Karney (Karney@Princeton.EDU)
  4.     % of any bugs, improvements, etc.
  5.  
  6.     % For Nuclear Fusion Letters
  7.  
  8.     % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.
  9.     % Copyright (C) 1985, all rights reserved.
  10.     % Copying of this file is authorized only if either
  11.     % (1) you make absolutely no changes to your copy, including name, or
  12.     % (2) if you do make changes, you name it something other than
  13.     % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
  14.     % This restriction helps ensure that all standard styles are identical.
  15.     % The file btxbst.doc has the documentation for this style.
  16.  
  17. ENTRY
  18.   { address
  19.     author
  20.     booktitle
  21.     chapter
  22.     edition
  23.     editor
  24.     howpublished
  25.     institution
  26.     journal
  27.     key
  28.     month
  29.     note
  30.     number
  31.     organization
  32.     pages
  33.     publisher
  34.     school
  35.     series
  36.     title
  37.     type
  38.     volume
  39.     year
  40.   }
  41.   {}
  42.   { label }
  43.  
  44. INTEGERS { output.state before.all mid.sentence after.sentence after.block }
  45.  
  46. FUNCTION {init.state.consts}
  47. { #0 'before.all :=
  48.   #1 'mid.sentence :=
  49.   #2 'after.sentence :=
  50.   #3 'after.block :=
  51. }
  52.  
  53. STRINGS { s t }
  54.  
  55. FUNCTION {output.nonnull}
  56. { 's :=
  57.   output.state mid.sentence =
  58.     { ", " * write$ }
  59.     { output.state after.block =
  60.     { "," * write$
  61.       newline$
  62.       "\newblock " write$
  63.     }
  64.     { output.state before.all =
  65.         'write$
  66.         { add.period$ " " * write$ }
  67.       if$
  68.     }
  69.       if$
  70.       mid.sentence 'output.state :=
  71.     }
  72.   if$
  73.   s
  74. }
  75.  
  76. FUNCTION {output}
  77. { duplicate$ empty$
  78.     'pop$
  79.     'output.nonnull
  80.   if$
  81. }
  82.  
  83. FUNCTION {output.check}
  84. { 't :=
  85.   duplicate$ empty$
  86.     { pop$ "empty " t * " in " * cite$ * warning$ }
  87.     'output.nonnull
  88.   if$
  89. }
  90.  
  91. FUNCTION {output.bibitem}
  92. { newline$
  93.   "\bibitem{" write$
  94.   cite$ write$
  95.   "}" write$
  96.   newline$
  97.   ""
  98.   before.all 'output.state :=
  99. }
  100.  
  101. FUNCTION {fin.entry}
  102. { add.period$
  103.   write$
  104.   newline$
  105. }
  106.  
  107. FUNCTION {new.block}
  108. { output.state before.all =
  109.     'skip$
  110.     { after.block 'output.state := }
  111.   if$
  112. }
  113.  
  114. FUNCTION {new.sentence}
  115. { skip$
  116. }
  117.  
  118. FUNCTION {not}
  119. {   { #0 }
  120.     { #1 }
  121.   if$
  122. }
  123.  
  124. FUNCTION {and}
  125. {   'skip$
  126.     { pop$ #0 }
  127.   if$
  128. }
  129.  
  130. FUNCTION {or}
  131. {   { pop$ #1 }
  132.     'skip$
  133.   if$
  134. }
  135.  
  136. FUNCTION {new.block.checka}
  137. { empty$
  138.     'skip$
  139.     'new.block
  140.   if$
  141. }
  142.  
  143. FUNCTION {new.block.checkb}
  144. { empty$
  145.   swap$ empty$
  146.   and
  147.     'skip$
  148.     'new.block
  149.   if$
  150. }
  151.  
  152. FUNCTION {new.sentence.checka}
  153. { empty$
  154.     'skip$
  155.     'new.sentence
  156.   if$
  157. }
  158.  
  159. FUNCTION {new.sentence.checkb}
  160. { empty$
  161.   swap$ empty$
  162.   and
  163.     'skip$
  164.     'new.sentence
  165.   if$
  166. }
  167.  
  168. FUNCTION {field.or.null}
  169. { duplicate$ empty$
  170.     { pop$ "" }
  171.     'skip$
  172.   if$
  173. }
  174.  
  175. FUNCTION {emphasize}
  176. { duplicate$ empty$
  177.     { pop$ "" }
  178.     { "{\em " swap$ * "}" * }
  179.   if$
  180. }
  181.  
  182. FUNCTION {embolden}
  183. { duplicate$ empty$
  184.     { pop$ "" }
  185.     { "{\bf " swap$ * "}" * }
  186.   if$
  187. }
  188.  
  189. FUNCTION {paren}
  190. { duplicate$ empty$
  191.     { pop$ "" }
  192.     { "(" swap$ * ")" * }
  193.   if$
  194. }
  195.  
  196. INTEGERS { nameptr namesleft numnames }
  197.  
  198. INTEGERS { etal }
  199.  
  200. FUNCTION {format.names}
  201. { 's :=
  202.   #1 'nameptr :=
  203.   s num.names$ 'numnames :=
  204.   numnames #5 >
  205.   s numnames "{ll}" format.name$ "others" = numnames #5 > and
  206.   or 'etal :=
  207.   etal
  208.     { #5 #1 + 'namesleft := }
  209.     { numnames 'namesleft := }
  210.   if$
  211.     { namesleft #0 > }
  212.     { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't :=   % last name first
  213.       t "others" =
  214.     'skip$
  215.     { t "u" change.case$ 't := }
  216.       if$
  217.       nameptr #1 >
  218.     { namesleft #1 >
  219.         { ", " * t * }
  220.         { nameptr #2 >
  221.         { "," * }
  222.         'skip$
  223.           if$
  224.           t "others" =
  225.           etal or
  226.         { " et~al." * }
  227.         { " and " * t * }
  228.           if$
  229.         }
  230.       if$
  231.     }
  232.     't
  233.       if$
  234.       nameptr #1 + 'nameptr :=
  235.       namesleft #1 - 'namesleft :=
  236.     }
  237.   while$
  238. }
  239.  
  240. FUNCTION {format.authors}
  241. { author empty$
  242.     { "" }
  243.     { author format.names }
  244.   if$
  245. }
  246.  
  247. FUNCTION {format.editors}
  248. { editor empty$
  249.     { "" }
  250.     { editor format.names
  251.       editor num.names$ #1 >
  252.     { ", editors" * }
  253.     { ", editor" * }
  254.       if$
  255.     }
  256.   if$
  257. }
  258.  
  259. FUNCTION {format.title}
  260. { title empty$
  261.     { "" }
  262.     { title "t" change.case$ }
  263.   if$
  264. }
  265.  
  266. FUNCTION {n.dashify}
  267. { 't :=
  268.   ""
  269.     { t empty$ not }
  270.     { t #1 #1 substring$ "-" =
  271.     { t #1 #2 substring$ "--" = not
  272.         { "--" *
  273.           t #2 global.max$ substring$ 't :=
  274.         }
  275.         {   { t #1 #1 substring$ "-" = }
  276.         { "-" *
  277.           t #2 global.max$ substring$ 't :=
  278.         }
  279.           while$
  280.         }
  281.       if$
  282.     }
  283.     { t #1 #1 substring$ *
  284.       t #2 global.max$ substring$ 't :=
  285.     }
  286.       if$
  287.     }
  288.   while$
  289. }
  290.  
  291. FUNCTION {first.page}
  292. { 't :=
  293.   ""
  294.     {  t empty$ not t #1 #1 substring$ "-" = not and }
  295.     { t #1 #1 substring$ *
  296.       t #2 global.max$ substring$ 't :=
  297.     }
  298.   while$
  299. }
  300.  
  301. FUNCTION {format.date}
  302. { year empty$
  303.     { "" }
  304.     'year
  305.   if$
  306. }
  307.  
  308. FUNCTION {format.btitle}
  309. { title emphasize
  310. }
  311.  
  312. FUNCTION {tie.or.space.connect}
  313. { duplicate$ text.length$ #3 <
  314.     { "~" }
  315.     { " " }
  316.   if$
  317.   swap$ * *
  318. }
  319.  
  320. FUNCTION {either.or.check}
  321. { empty$
  322.     'pop$
  323.     { "can't use both " swap$ * " fields in " * cite$ * warning$ }
  324.   if$
  325. }
  326.  
  327. FUNCTION {format.bvolume}
  328. { volume empty$
  329.     { "" }
  330.     { "volume" volume tie.or.space.connect
  331.       series empty$
  332.     'skip$
  333.     { " of " * series emphasize * }
  334.       if$
  335.       "volume and number" number either.or.check
  336.     }
  337.   if$
  338. }
  339.  
  340. FUNCTION {format.number.series}
  341. { volume empty$
  342.     { number empty$
  343.     { series field.or.null }
  344.     { output.state mid.sentence =
  345.         { "number" }
  346.         { "Number" }
  347.       if$
  348.       number tie.or.space.connect
  349.       series empty$
  350.         { "there's a number but no series in " cite$ * warning$ }
  351.         { " in " * series * }
  352.       if$
  353.     }
  354.       if$
  355.     }
  356.     { "" }
  357.   if$
  358. }
  359.  
  360. FUNCTION {format.edition}
  361. { edition empty$
  362.     { "" }
  363.     { output.state mid.sentence =
  364.     { edition "l" change.case$ " edition" * }
  365.     { edition "t" change.case$ " edition" * }
  366.       if$
  367.     }
  368.   if$
  369. }
  370.  
  371. INTEGERS { multiresult }
  372.  
  373. FUNCTION {multi.page.check}
  374. { 't :=
  375.   #0 'multiresult :=
  376.     { multiresult not
  377.       t empty$ not
  378.       and
  379.     }
  380.     { t #1 #1 substring$
  381.       duplicate$ "-" =
  382.       swap$ duplicate$ "," =
  383.       swap$ "+" =
  384.       or or
  385.     { #1 'multiresult := }
  386.     { t #2 global.max$ substring$ 't := }
  387.       if$
  388.     }
  389.   while$
  390.   multiresult
  391. }
  392.  
  393. FUNCTION {format.pages}
  394. { pages empty$
  395.     { "" }
  396.     { pages multi.page.check
  397.     { "pp." pages n.dashify tie.or.space.connect }
  398.     { "p." pages tie.or.space.connect }
  399.       if$
  400.     }
  401.   if$
  402. }
  403.  
  404. FUNCTION {format.pages.a}
  405. { pages empty$
  406.     { "" }
  407.     { "p." pages first.page tie.or.space.connect }
  408.   if$
  409. }
  410.  
  411. FUNCTION {format.vol.num.pages}
  412. { volume field.or.null embolden
  413.   " " swap$ * *
  414.   format.date empty$
  415.     'skip$
  416.     { duplicate$ empty$
  417.     { pop$ format.date paren }
  418.         { " " * format.date paren * }
  419.       if$
  420.     }
  421.   if$
  422.   pages empty$
  423.     'skip$
  424.     { duplicate$ empty$
  425.     { pop$ format.pages.a }
  426.     { " " * pages first.page *}
  427.       if$
  428.     }
  429.   if$
  430. }
  431.  
  432. FUNCTION {format.chapter.pages}
  433. { chapter empty$
  434.     'format.pages
  435.     { type empty$
  436.     { "chapter" }
  437.     { type "l" change.case$ }
  438.       if$
  439.       chapter tie.or.space.connect
  440.       pages empty$
  441.     'skip$
  442.     { ", " * format.pages * }
  443.       if$
  444.     }
  445.   if$
  446. }
  447.  
  448. FUNCTION {format.in.ed.booktitle}
  449. { booktitle empty$
  450.     { "" }
  451.     { editor empty$
  452.     { "in " booktitle emphasize * }
  453.     { "in " format.editors * ", " * booktitle emphasize * }
  454.       if$
  455.     }
  456.   if$
  457. }
  458.  
  459. FUNCTION {empty.misc.check}
  460. { author empty$ title empty$ howpublished empty$
  461.   month empty$ year empty$ note empty$
  462.   and and and and and
  463.     { "all relevant fields are empty in " cite$ * warning$ }
  464.     'skip$
  465.   if$
  466. }
  467.  
  468. FUNCTION {format.thesis.type}
  469. { type empty$
  470.     'skip$
  471.     { pop$
  472.       type "t" change.case$
  473.     }
  474.   if$
  475. }
  476.  
  477. FUNCTION {format.tr.number}
  478. { type empty$
  479.     { "Technical Report" }
  480.     'type
  481.   if$
  482.   number empty$
  483.     { "t" change.case$ }
  484.     { number tie.or.space.connect }
  485.   if$
  486. }
  487.  
  488. FUNCTION {format.article.crossref}
  489. { key empty$
  490.     { journal empty$
  491.     { "need key or journal for " cite$ * " to crossref " * crossref *
  492.       warning$
  493.       ""
  494.     }
  495.     { "In " journal * }
  496.       if$
  497.     }
  498.     { "In " key * }
  499.   if$
  500.   " \cite{" * crossref * "}" *
  501. }
  502.  
  503. FUNCTION {format.crossref.editor}
  504. { editor #1 "{vv~}{ll}" format.name$
  505.   editor num.names$ duplicate$
  506.   #2 >
  507.     { pop$ " et~al." * }
  508.     { #2 <
  509.     'skip$
  510.     { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
  511.         { " et~al." * }
  512.         { " and " * editor #2 "{vv~}{ll}" format.name$ * }
  513.       if$
  514.     }
  515.       if$
  516.     }
  517.   if$
  518. }
  519.  
  520. FUNCTION {format.book.crossref}
  521. { volume empty$
  522.     { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
  523.       "In "
  524.     }
  525.     { "Volume" volume tie.or.space.connect
  526.       " of " *
  527.     }
  528.   if$
  529.   editor empty$
  530.   editor field.or.null author field.or.null =
  531.   or
  532.     { key empty$
  533.     { series empty$
  534.         { "need editor, key, or series for " cite$ * " to crossref " *
  535.           crossref * warning$
  536.           "" *
  537.         }
  538.         { "{\em " * series * "\/}" * }
  539.       if$
  540.     }
  541.     { key * }
  542.       if$
  543.     }
  544.     { format.crossref.editor * }
  545.   if$
  546.   " \cite{" * crossref * "}" *
  547. }
  548.  
  549. FUNCTION {format.incoll.inproc.crossref}
  550. { editor empty$
  551.   editor field.or.null author field.or.null =
  552.   or
  553.     { key empty$
  554.     { booktitle empty$
  555.         { "need editor, key, or booktitle for " cite$ * " to crossref " *
  556.           crossref * warning$
  557.           ""
  558.         }
  559.         { "In {\em " booktitle * "\/}" * }
  560.       if$
  561.     }
  562.     { "In " key * }
  563.       if$
  564.     }
  565.     { "In " format.crossref.editor * }
  566.   if$
  567.   " \cite{" * crossref * "}" *
  568. }
  569.  
  570. FUNCTION {article}
  571. { output.bibitem
  572.   format.authors "author" output.check
  573.   new.block
  574.   crossref missing$
  575.     { journal field.or.null
  576.       format.vol.num.pages output
  577.     }
  578.     { format.article.crossref output.nonnull
  579.       format.pages output
  580.     }
  581.   if$
  582.   new.block
  583.   note output
  584.   fin.entry
  585. }
  586.  
  587. FUNCTION {book}
  588. { output.bibitem
  589.   author empty$
  590.     { format.editors "author and editor" output.check }
  591.     { format.authors output.nonnull
  592.       crossref missing$
  593.     { "author and editor" editor either.or.check }
  594.     'skip$
  595.       if$
  596.     }
  597.   if$
  598.   new.block
  599.   format.btitle "title" output.check
  600.   crossref missing$
  601.     { format.bvolume output
  602.       new.block
  603.       format.number.series output
  604.       new.sentence
  605.       publisher "publisher" output.check
  606.       address output
  607.     }
  608.     { new.block
  609.       format.book.crossref output.nonnull
  610.     }
  611.   if$
  612.   format.edition output
  613.   format.date "year" output.check
  614.   new.block
  615.   note output
  616.   fin.entry
  617. }
  618.  
  619. FUNCTION {booklet}
  620. { output.bibitem
  621.   format.authors output
  622.   new.block
  623.   format.title "title" output.check
  624.   howpublished address new.block.checkb
  625.   howpublished output
  626.   address output
  627.   format.date output
  628.   new.block
  629.   note output
  630.   fin.entry
  631. }
  632.  
  633. FUNCTION {inbook}
  634. { output.bibitem
  635.   author empty$
  636.     { format.editors "author and editor" output.check }
  637.     { format.authors output.nonnull
  638.       crossref missing$
  639.     { "author and editor" editor either.or.check }
  640.     'skip$
  641.       if$
  642.     }
  643.   if$
  644.   new.block
  645.   format.btitle "title" output.check
  646.   crossref missing$
  647.     { format.bvolume output
  648.       format.chapter.pages "chapter and pages" output.check
  649.       new.block
  650.       format.number.series output
  651.       new.sentence
  652.       publisher "publisher" output.check
  653.       address output
  654.     }
  655.     { format.chapter.pages "chapter and pages" output.check
  656.       new.block
  657.       format.book.crossref output.nonnull
  658.     }
  659.   if$
  660.   format.edition output
  661.   format.date "year" output.check
  662.   new.block
  663.   note output
  664.   fin.entry
  665. }
  666.  
  667. FUNCTION {incollection}
  668. { output.bibitem
  669.   format.authors "author" output.check
  670.   new.block
  671.   format.title "title" output.check
  672.   new.block
  673.   crossref missing$
  674.     { format.in.ed.booktitle "booktitle" output.check
  675.       format.bvolume output
  676.       format.number.series output
  677.       format.chapter.pages output
  678.       new.sentence
  679.       publisher "publisher" output.check
  680.       address output
  681.       format.edition output
  682.       format.date "year" output.check
  683.     }
  684.     { format.incoll.inproc.crossref output.nonnull
  685.       format.chapter.pages output
  686.     }
  687.   if$
  688.   new.block
  689.   note output
  690.   fin.entry
  691. }
  692.  
  693. FUNCTION {inproceedings}
  694. { output.bibitem
  695.   format.authors "author" output.check
  696.   new.block
  697.   format.title "title" output.check
  698.   new.block
  699.   crossref missing$
  700.     { format.in.ed.booktitle "booktitle" output.check
  701.       format.bvolume output
  702.       format.number.series output
  703.       format.pages output
  704.       address empty$
  705.     { organization publisher new.sentence.checkb
  706.       organization output
  707.       publisher output
  708.       format.date "year" output.check
  709.     }
  710.     { address output.nonnull
  711.       format.date "year" output.check
  712.       new.sentence
  713.       organization output
  714.       publisher output
  715.     }
  716.       if$
  717.     }
  718.     { format.incoll.inproc.crossref output.nonnull
  719.       format.pages output
  720.     }
  721.   if$
  722.   new.block
  723.   note output
  724.   fin.entry
  725. }
  726.  
  727. FUNCTION {conference} { inproceedings }
  728.  
  729. FUNCTION {manual}
  730. { output.bibitem
  731.   author empty$
  732.     { organization empty$
  733.     'skip$
  734.     { organization output.nonnull
  735.       address output
  736.     }
  737.       if$
  738.     }
  739.     { format.authors output.nonnull }
  740.   if$
  741.   new.block
  742.   format.btitle "title" output.check
  743.   author empty$
  744.     { organization empty$
  745.     { address new.block.checka
  746.       address output
  747.     }
  748.     'skip$
  749.       if$
  750.     }
  751.     { organization address new.block.checkb
  752.       organization output
  753.       address output
  754.     }
  755.   if$
  756.   format.edition output
  757.   format.date output
  758.   new.block
  759.   note output
  760.   fin.entry
  761. }
  762.  
  763. FUNCTION {mastersthesis}
  764. { output.bibitem
  765.   format.authors "author" output.check
  766.   new.block
  767.   format.title "title" output.check
  768.   new.block
  769.   "Master's thesis" format.thesis.type output.nonnull
  770.   school "school" output.check
  771.   address output
  772.   format.date "year" output.check
  773.   new.block
  774.   note output
  775.   fin.entry
  776. }
  777.  
  778. FUNCTION {misc}
  779. { output.bibitem
  780.   format.authors output
  781.   title howpublished new.block.checkb
  782.   format.title output
  783.   howpublished new.block.checka
  784.   howpublished output
  785.   format.date output
  786.   new.block
  787.   note output
  788.   fin.entry
  789.   empty.misc.check
  790. }
  791.  
  792. FUNCTION {phdthesis}
  793. { output.bibitem
  794.   format.authors "author" output.check
  795.   new.block
  796.   format.btitle "title" output.check
  797.   new.block
  798.   "PhD thesis" format.thesis.type output.nonnull
  799.   school "school" output.check
  800.   address output
  801.   format.date "year" output.check
  802.   new.block
  803.   note output
  804.   fin.entry
  805. }
  806.  
  807. FUNCTION {proceedings}
  808. { output.bibitem
  809.   editor empty$
  810.     { organization output }
  811.     { format.editors output.nonnull }
  812.   if$
  813.   new.block
  814.   format.btitle "title" output.check
  815.   format.bvolume output
  816.   format.number.series output
  817.   address empty$
  818.     { editor empty$
  819.     { publisher new.sentence.checka }
  820.     { organization publisher new.sentence.checkb
  821.       organization output
  822.     }
  823.       if$
  824.       publisher output
  825.       format.date "year" output.check
  826.     }
  827.     { address output.nonnull
  828.       format.date "year" output.check
  829.       new.sentence
  830.       editor empty$
  831.     'skip$
  832.     { organization output }
  833.       if$
  834.       publisher output
  835.     }
  836.   if$
  837.   new.block
  838.   note output
  839.   fin.entry
  840. }
  841.  
  842. FUNCTION {techreport}
  843. { output.bibitem
  844.   format.authors "author" output.check
  845.   new.block
  846.   format.title "title" output.check
  847.   new.block
  848.   format.tr.number output.nonnull
  849.   institution "institution" output.check
  850.   address output
  851.   format.date "year" output.check
  852.   new.block
  853.   note output
  854.   fin.entry
  855. }
  856.  
  857. FUNCTION {unpublished}
  858. { output.bibitem
  859.   format.authors "author" output.check
  860.   new.block
  861.   format.title "title" output.check
  862.   new.block
  863.   note "note" output.check
  864.   format.date output
  865.   fin.entry
  866. }
  867.  
  868. FUNCTION {default.type} { misc }
  869.  
  870. MACRO {jan} {"Jan."}
  871.  
  872. MACRO {feb} {"Feb."}
  873.  
  874. MACRO {mar} {"Mar."}
  875.  
  876. MACRO {apr} {"Apr."}
  877.  
  878. MACRO {may} {"May"}
  879.  
  880. MACRO {jun} {"June"}
  881.  
  882. MACRO {jul} {"July"}
  883.  
  884. MACRO {aug} {"Aug."}
  885.  
  886. MACRO {sep} {"Sept."}
  887.  
  888. MACRO {oct} {"Oct."}
  889.  
  890. MACRO {nov} {"Nov."}
  891.  
  892. MACRO {dec} {"Dec."}
  893.  
  894. MACRO {acmcs} {"ACM Comput. Surv."}
  895.  
  896. MACRO {acta} {"Acta Inf."}
  897.  
  898. MACRO {cacm} {"Commun. ACM"}
  899.  
  900. MACRO {ibmjrd} {"IBM J. Res. Dev."}
  901.  
  902. MACRO {ibmsj} {"IBM Syst.~J."}
  903.  
  904. MACRO {ieeese} {"IEEE Trans. Softw. Eng."}
  905.  
  906. MACRO {ieeetc} {"IEEE Trans. Comput."}
  907.  
  908. MACRO {ieeetcad}
  909.  {"IEEE Trans. Comput.-Aided Design Integrated Circuits"}
  910.  
  911. MACRO {ipl} {"Inf. Process. Lett."}
  912.  
  913. MACRO {jacm} {"J.~ACM"}
  914.  
  915. MACRO {jcss} {"J.~Comput. Syst. Sci."}
  916.  
  917. MACRO {scp} {"Sci. Comput. Programming"}
  918.  
  919. MACRO {sicomp} {"SIAM J. Comput."}
  920.  
  921. MACRO {tocs} {"ACM Trans. Comput. Syst."}
  922.  
  923. MACRO {tods} {"ACM Trans. Database Syst."}
  924.  
  925. MACRO {tog} {"ACM Trans. Gr."}
  926.  
  927. MACRO {toms} {"ACM Trans. Math. Softw."}
  928.  
  929. MACRO {toois} {"ACM Trans. Office Inf. Syst."}
  930.  
  931. MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."}
  932.  
  933. MACRO {tcs} {"Theoretical Comput. Sci."}
  934.  
  935. MACRO {advp} {"Adv. Phys."}
  936. MACRO {ajp} {"Am. J. Phys."}
  937. MACRO {ao} {"Appl. Opt."}
  938. MACRO {apl} {"Appl. Phys. Lett."}
  939. MACRO {apj} {"Astrophys. J."}
  940. MACRO {baps} {"Bull. Am. Phys. Soc."}
  941. MACRO {cpc} {"Computer Phys. Comm."}
  942. MACRO {cppcf} {"Comments Plasma Phys. Controlled Fusion"}
  943. MACRO {fed} {"Fusion Eng. Design"}
  944. MACRO {ft} {"Fusion Tech."}
  945. MACRO {ieeens} {"IEEE Trans. Nucl. Sci."}
  946. MACRO {ieeeps} {"IEEE Trans. Plasma Sci."}
  947. MACRO {ijimw} {"Int. J. Infrared Millimeter Waves"}
  948. MACRO {ip} {"Infrared Phys."}
  949. MACRO {jap} {"J. Appl. Phys."}
  950. MACRO {jcp} {"J. Comput. Phys."}
  951. MACRO {jetp} {"Sov. Phys.-JETP"}
  952. MACRO {jfe} {"J. Fusion Energy"}
  953. MACRO {jfm} {"J. Fluid Mech."}
  954. MACRO {jgr} {"J. Geophys. Res."}
  955. MACRO {jmp} {"J. Math. Phys."}
  956. MACRO {jne} {"J. Nucl. Energy"}
  957. MACRO {jnec} {"J. Nucl. Energy, Part C"}
  958. MACRO {jnm} {"J. Nucl. Mater."}
  959. MACRO {josa} {"J. Opt. Soc. Am."}
  960. MACRO {jpp} {"J. Plasma Phys."}
  961. MACRO {jpsj} {"J. Phys. Soc. Jpn"}
  962. MACRO {jvst} {"J. Vac. Sci. Technol."}
  963. MACRO {nedf} {"Nucl. Eng. Design/Fusion"}
  964. MACRO {nf} {"Nucl. Fusion"}
  965. MACRO {nim} {"Nucl. Instrum. Methods"}
  966. MACRO {nimpr} {"Nucl. Instrum. Methods Phys. Research"}
  967. MACRO {nt/f} {"Nucl. Tech./Fusion"}
  968. MACRO {pf} {"Phys. Fluids"}
  969. MACRO {pfa} {"Phys. Fluids A"}
  970. MACRO {pfb} {"Phys. Fluids B"}
  971. MACRO {pl} {"Phys. Lett."}
  972. MACRO {pla} {"Phys. Lett. A"}
  973. MACRO {pnas} {"Proc. Nat. Acad. Sci. USA"}
  974. MACRO {pp} {"Plasma Phys."}
  975. MACRO {ppcf} {"Plasma Phys. Controlled Fusion"}
  976. MACRO {prl} {"Phys. Rev. Lett."}
  977. MACRO {pr} {"Phys. Rev."}
  978. MACRO {pra} {"Phys. Rev. A"}
  979. MACRO {ps} {"Physica Scripta"}
  980. MACRO {rmp} {"Rev. Mod. Phys."}
  981. MACRO {rsi} {"Rev. Sci. Instrum."}
  982. MACRO {sjpp} {"Sov. J. Plasma Phys."}
  983. MACRO {spd} {"Sov. Phys.-Dokl."}
  984. MACRO {sptp} {"Sov. Phys.-Tech. Phys."}
  985. MACRO {spu} {"Sov. Phys.-Usp."}
  986.  
  987. READ
  988.  
  989. STRINGS { longest.label }
  990.  
  991. INTEGERS { number.label longest.label.width }
  992.  
  993. FUNCTION {initialize.longest.label}
  994. { "" 'longest.label :=
  995.   #1 'number.label :=
  996.   #0 'longest.label.width :=
  997. }
  998.  
  999. FUNCTION {longest.label.pass}
  1000. { number.label int.to.str$ 'label :=
  1001.   number.label #1 + 'number.label :=
  1002.   label width$ longest.label.width >
  1003.     { label 'longest.label :=
  1004.       label width$ 'longest.label.width :=
  1005.     }
  1006.     'skip$
  1007.   if$
  1008. }
  1009.  
  1010. EXECUTE {initialize.longest.label}
  1011.  
  1012. ITERATE {longest.label.pass}
  1013.  
  1014. FUNCTION {begin.bib}
  1015. { preamble$ empty$
  1016.     'skip$
  1017.     { preamble$ write$ newline$ }
  1018.   if$
  1019.   "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
  1020. }
  1021.  
  1022. EXECUTE {begin.bib}
  1023.  
  1024. EXECUTE {init.state.consts}
  1025.  
  1026. ITERATE {call.type$}
  1027.  
  1028. FUNCTION {end.bib}
  1029. { newline$
  1030.   "\end{thebibliography}" write$ newline$
  1031. }
  1032.  
  1033. EXECUTE {end.bib}
  1034.